یادگیری فلاتر و دارت برای ساخت برنامه های iOS و اندروید - نسخه دوم [ویدئو]

Learn Flutter and Dart to Build iOS and Android Apps - Second Edition [Video]

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: این دوره آموزشی Flutter فرصتی عالی برای کشف قدرت Flutter و Dart برای ایجاد برنامه های موبایلی خیره کننده و با کارایی بالا در هر دو سیستم عامل iOS و Android است. این دوره دستورالعمل های دقیق راه اندازی را برای macOS و Windows به شما ارائه می دهد. مقدمه ای کامل بر فلاتر، دارت و مفهوم پشت ویجت ها. و یک نمای کلی از ویجت‌های داخلی به همراه دستورالعمل‌هایی در مورد نحوه افزودن ابزارک خود. این به شما درک قوی از اصول فلاتر و دارت، از جمله نحوه تجزیه و تحلیل پروژه فلاتر جدید، وارد کردن ویژگی‌ها از بسته‌ها، استفاده از اولین ویجت و ارسال مقادیر به توابع را به شما ارائه می‌دهد. علاوه بر این، نحوه کار با توابع سازنده را یاد خواهید گرفت. همچنین نکات و ترفندهای اشکال زدایی، پیمایش صفحه با زبانه ها، کشوهای جانبی، و ناوبری مبتنی بر پشته، راه حل های مدیریت وضعیت، مدیریت و اعتبارسنجی ورودی کاربر، اتصال برنامه Flutter خود به سرورهای پشتیبان با ارسال درخواست های HTTP، احراز هویت کاربر، افزودن Google را یاد خواهید گرفت. نقشه ها، با استفاده از ویژگی های دستگاه بومی مانند دوربین، افزودن انیمیشن های زیبا و انتقال صفحه، آپلود تصویر، و اعلان های فشار. در طول دوره، چندین برنامه دمو خواهید ساخت که از ساده تا پیچیده تر را شامل می شود. در پایان دوره، شما مهارت های لازم برای ساخت اپلیکیشن های iOS و اندروید خود را با استفاده از Flutter خواهید داشت. فلاتر، دارت و مفهوم پشت ویجت ها را درک کنید برنامه Flutter خود را با ارسال درخواست های HTTP به سرورهای پشتیبان متصل کنید یاد بگیرید که از ویژگی های دستگاه بومی مانند دوربین استفاده کنید یاد بگیرید که انیمیشن های زیبا و انتقال صفحه اضافه کنید یاد بگیرید که تصاویر را آپلود کنید و اعلان‌های فشاری دستی/خودکار ارسال کنید آموزش اضافه کردن نقشه های گوگل به برنامه این دوره برای توسعه دهندگان مبتدی و با تجربه که می خواهند توسعه اپلیکیشن موبایل را با استفاده از یک زبان برای هر دو پلتفرم iOS و اندروید یاد بگیرند، مناسب است. همچنین برای توسعه دهندگان باتجربه iOS یا Android که به دنبال ساخت برنامه های چند پلتفرمی با استفاده از یک زبان برنامه نویسی هستند ایده آل است. اگرچه دانش اولیه برنامه نویسی مفید است، اما اجباری نیست و هیچ تجربه قبلی در فلاتر یا دارت لازم نیست. علاوه بر این، هیچ تجربه قبلی در توسعه iOS (Swift/ObjectiveC) یا Android (Java/Kotlin) لازم نیست. عمیقاً در فلاتر و دارت غوطه ور شوید و به یک توسعه دهنده پیشرفته تبدیل شوید * از ویژگی هایی مانند Google Maps، دوربین دستگاه، احراز هویت و موارد دیگر استفاده کنید * تجربه ای همه جانبه با مثال های عملی و برنامه های نمایشی برای کمک به توسعه مهارت های خود

سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • به این دوره خوش آمدید! Welcome to This Course!

  • فلاتر چیست؟ What Is Flutter?

  • فلاتر از دارت استفاده می کند! Flutter Uses Dart!

  • یک پایگاه کد، پلتفرم های متعدد One Codebase, Multiple Platforms

  • Flutter Setup - نمای کلی Flutter Setup - Overview

  • راه اندازی ویندوز Windows Setup

  • راه اندازی macOS macOS Setup

  • ایجاد پروژه و راه اندازی یک ویرایشگر کد برای توسعه Flutter Project Creation and Setting Up a Code Editor for Flutter Development

  • اجرای اولین اپلیکیشن فلاتر Running a First Flutter App

  • درک متریال طراحی Understanding Material Design

  • درباره این دوره About This Course

مبانی فلاتر و دارت I - گرفتن پایه محکم (برنامه Roll Dice) Flutter and Dart Basics I - Getting a Solid Foundation (Roll Dice App)

  • معرفی ماژول Module Introduction

  • تجزیه و تحلیل یک پروژه فلاتر جدید Analyzing a New Flutter Project

  • کد Dart to Machine را فرم دهید Form Dart to Machine Code

  • زبان های برنامه نویسی چگونه کار می کنند How Programming Languages Work

  • شروع از ابتدا: درک توابع Starting from Scratch: Understanding Functions

  • وارد کردن ویژگی ها از بسته ها Importing Features from Packages

  • نحوه شروع برنامه های فلاتر How Flutter Apps Start

  • درک ابزارک ها Understanding Widgets

  • استفاده از اولین ویجت و ارسال مقادیر به توابع Using a First Widget and Passing Values to Functions

  • استدلال های موضعی و نامی Positional and Named Arguments

  • ترکیب چندین ویجت Combining Multiple Widgets

  • درک ارزش های "const". Understanding "const" Values

  • ساختن درختان ویجت پیچیده تر Building More Complex Widget Trees

  • درک انواع ارزش Understanding Value Types

  • پیکربندی ابزارک ها و درک اشیاء Configuring Widgets and Understanding Objects

  • کار با "اشیاء پیکربندی" (اشیاء غیر ویجت) Working with "Configuration Objects" (Non-Widget Objects)

  • ژنریک ها، فهرست ها و افزودن رنگ های گرادیان Generics, Lists, and Adding Gradient Colors

  • نحوه پیکربندی ابزارک ها و اشیاء How to Configure Widgets and Objects

  • تمرین: حالت دادن به متن Practice: Styling Text

  • پیش به سوی ابزارک های سفارشی: چرا به آنها نیاز دارید؟ Onward to Custom Widgets: Why Do You Need Them?

  • درک کلاس ها Understanding Classes

  • ساخت ابزارک های سفارشی Building Custom Widgets

  • کار با توابع سازنده Working with Constructor Functions

  • تقسیم کد در بین فایل ها Splitting Code Across Files

  • تمرین: یک ویجت سفارشی ایجاد کنید Practice: Create a Custom Widget

  • معرفی متغیرها Introducing Variables

  • متغیرها و انواع - ترکیب دو مفهوم کلیدی Variables and Types - Combining Two Key Concepts

  • "نهایی" و "const" - انواع ویژه "متغیرها" "final" and "const" - Special Kinds of "Variables"

  • متغیرهای نمونه (خواص) و ویجت های قابل تنظیم Instance Variables (Properties) and Configurable Widgets

  • تمرین: ابزارک های قابل استفاده مجدد و توابع سازنده Practice: Reusable Widgets and Constructor Functions

  • نمایش تصاویر و استفاده از توابع سازنده چندگانه Displaying Images and Using Multiple Constructor Functions

  • اضافه کردن دکمه ها و استفاده از توابع به عنوان مقادیر Adding Buttons and Using Functions As Values

  • دکمه های یک ظاهر طراحی شده و کار با پد Styling Buttons and Working with Padding

  • چگونه ابزارک های تعاملی نسازیم How NOT to Build Interactive Widgets

  • معرفی ویجت های Stateful Introducing Stateful Widgets

  • تولید اعداد تصادفی Generating Random Numbers

  • خلاصه ماژول Module Summary

Flutter and Dart Basics II - Fundamentals Deep Dive (برنامه مسابقه) Flutter and Dart Basics II - Fundamentals Deep Dive (Quiz App)

  • معرفی ماژول Module Introduction

  • یک چالش برای شما! A Challenge for You!

  • راه حل چالش 1/2 - ایجاد یک ویجت Challenge Solution 1/2 - Creating a Widget

  • راه حل چالش 2/2 - کار با ویجت های بیشتر Challenge Solution 2/2 - Working with More Widgets

  • اضافه کردن آیکون به دکمه ها Adding Icons to Buttons

  • اضافه کردن شفافیت به ابزارک ها Adding Transparency to Widgets

  • تکرار و تمرین: افزودن یک ویجت Stateful Repetition and Exercise: Adding a Stateful Widget

  • ارائه محتوا به صورت مشروط Rendering Content Conditionally

  • پذیرش و گذراندن توابع به عنوان ارزش Accepting and Passing Functions as Values

  • روش "initState". The "initState" Method

  • استفاده از عبارات سه تایی و عملگرهای مقایسه Using Ternary Expressions and Comparison Operators

  • اگر اظهارات و اپراتورهای مقایسه if Statements and Comparison Operators

  • افزودن مدل داده و داده های ساختگی Adding a Data Model and Dummy Data

  • پیکربندی یک ستون Configuring a Column

  • ایجاد یک دکمه سفارشی و قابل استفاده مجدد Creating a Reusable, Custom Styled Button

  • دسترسی به عناصر لیست و ویژگی های شی Accessing List Elements and Object Properties

  • نگاشت لیست ها و استفاده از عملگر Spread Mapping Lists and Using the Spread Operator

  • تراز، حاشیه و بالشتک Alignment, Margin, and Padding

  • تغییر ارزش ها در حافظه Mutating Values in Memory

  • مدیریت فهرست سوالات به عنوان حالت Managing the Questions Index as State

  • بیشتر در مورد استایل دکمه More on Button Styling

  • استفاده از بسته های شخص ثالث و افزودن فونت های گوگل Using Third-Party Packages and Adding Google Fonts

  • انتقال داده ها از طریق توابع در میان ویجت ها Passing Data Through Functions Across Widgets

  • شرایط بیشتر More Conditions

  • شروع کار با صفحه نمایش نتایج Getting Started with the Results Screen

  • انتقال داده ها به صفحه نمایش نتایج Passing Data to the Results Screen

  • معرفی نقشه ها و حلقه های "for". Introducing Maps and "for" Loops

  • دسترسی به مقادیر نقشه و استفاده از "Type Casting" Accessing Map Values and Using "Type Casting"

  • ترکیب ستون ها و ردیف ها Combining Columns and Rows

  • برای نجات گسترش یافت! Expanded to the Rescue!

  • فیلتر کردن و تجزیه و تحلیل لیست ها Filtering and Analyzing Lists

  • قابلیت اسکرول کردن محتوا با SingleChildScrollView Making Content Scrollable with SingleChildScrollView

  • مبانی فلاتر و دارت - چالش کدنویسی Flutter and Dart Basics - Coding Challenge

  • مبانی فلاتر و دارت - راه حل Flutter and Dart Basics - Solution

  • فراتر از اصول اولیه: اختیاری، ویژگی های مهم دارت Beyond the Basics: Optional, Important Dart Features

  • خلاصه ماژول Module Summary

اشکال زدایی برنامه های Flutter Debugging Flutter Apps

  • معرفی ماژول Module Introduction

  • پروژه شروع و یک مشکل The Starting Project and a Problem

  • درک پیام های خطا Understanding Error Messages

  • اشکال زدایی برنامه ها و استفاده از "Debug Mode" Debugging Apps and Using "Debug Mode"

  • کار با Flutter DevTools Working with the Flutter DevTools

افزودن تعامل، ابزارک‌های بیشتر، و تم (برنامه ردیاب هزینه) Adding Interactivity, More Widgets, and Theming (Expense Tracker App)

  • معرفی ماژول Module Introduction

  • شروع راه اندازی و زمان تکرار! Starting Setup and Repetition Time!

  • افزودن یک مدل داده هزینه با شناسه منحصر به فرد و کاوش فهرست های آغازگر Adding an Expense Data Model with a Unique ID and Exploring Initializer Lists

  • معرفی Enums Introducing Enums

  • ایجاد داده های ساختگی Creating Dummy Data

  • ارائه کارآمد لیست های طولانی با ListView Efficiently Rendering Long Lists with ListView

  • استفاده از لیست ها در داخل لیست ها Using Lists Inside of Lists

  • ایجاد یک آیتم فهرست سفارشی با ویجت‌های Card و Spacer Creating a Custom List Item with the Card and Spacer Widgets

  • استفاده از آیکون ها و قالب بندی تاریخ ها Using Icons and Formatting Dates

  • تنظیم AppBar با عنوان و اقدامات Setting an AppBar with a Title and Actions

  • افزودن یک صفحه مودال و درک زمینه Adding a Modal Sheet and Understanding Context

  • مدیریت ورودی کاربر (متن) با ویجت TextField Handling User (Text) Input with the TextField Widget

  • دریافت ورودی کاربر در هر ضربه کلید Getting User Input on Every Keystroke

  • به Flutter اجازه دهید کار را با TextEditingController انجام دهد Letting Flutter do the Work with TextEditingController

  • زمان تمرین: افزودن یک ورودی جدید Time to Practice: Adding a New Input

  • راه حل تمرین Exercise Solution

  • بستن Modal به صورت دستی Closing the Modal Manually

  • نمایش انتخابگر تاریخ Showing a Date Picker

  • کار با "آینده" برای مدیریت داده ها از آینده Working with "Futures" for Handling Data from the Future

  • اضافه کردن یک دکمه کشویی Adding a Dropdown Button

  • ترکیب شرایط با اپراتورهای AND و OR Combining Conditions with AND and OR Operators

  • اعتبارسنجی ورودی کاربر و نمایش دیالوگ خطا Validating User Input and Showing an Error Dialog

  • صرفه جویی در هزینه های جدید Saving New Expenses

  • ایجاد یک مدال تمام صفحه Creating a Fullscreen Modal

  • استفاده از ویجت ردکننده برای رد کردن موارد فهرست Using the Dismissible Widget for Dismissing List Items

  • نمایش و مدیریت "Snackbars" Showing and Managing "Snackbars"

  • شروع با Theming Getting Started with Theming

  • تنظیم و استفاده از طرح رنگ Setting and Using a Color Scheme

  • تنظیم تم های متنی Setting Text Themes

  • استفاده از داده های تم در ابزارک ها Using Theme Data in Widgets

  • اضافه کردن حالت تاریک Adding Dark Mode

  • استفاده از نوع دیگری از حلقه (for-in) Using Another Kind of Loop (for-in)

  • افزودن توابع سازنده جایگزین و لیست های فیلتر Adding Alternative Constructor Functions and Filtering Lists

  • اضافه کردن ابزارک نمودار Adding Chart Widgets

  • خلاصه ماژول Module Summary

ساخت رابط کاربری پاسخگو و تطبیقی ​​(برنامه ردیاب هزینه) Building Responsive and Adaptive User Interfaces (Expense Tracker App)

  • معرفی ماژول Module Introduction

  • "پاسخگویی" چیست؟ What Is "Responsiveness"?

  • قفل کردن جهت دستگاه Locking the Device Orientation

  • به روز رسانی UI بر اساس فضای موجود Updating the UI Based on the Available Space

  • درک محدودیت های اندازه Understanding Size Constraints

  • کار با پوشش های صفحه مانند صفحه کلید نرم Handling to Screen Overlays Like the Soft Keyboard

  • آشنایی با "مناطق امن" Understanding "Safe Areas"

  • با استفاده از ویجت LayoutBuilder Using the LayoutBuilder Widget

  • ساخت ابزارک های تطبیقی Building Adaptive Widgets

  • خلاصه ماژول Module Summary

فلاتر و دارت داخلی (برنامه Todo) Flutter and Dart Internals (Todo App)

  • معرفی ماژول Module Introduction

  • سه درخت: درخت ویجت، درخت عنصر و درخت رندر Three Trees: Widget Tree, Element Tree, and Render Tree

  • نحوه به روز رسانی رابط کاربری How the UI Is Updated

  • Refactor و استخراج ویجت ها برای جلوگیری از ساخت های غیر ضروری Refactor and Extract Widgets to Avoid Unnecessary Builds

  • درک کلیدها - راه اندازی Understanding Keys - Setup

  • کلیدها کدام مشکل را حل می کنند؟ Which Problem Do Keys Solve?

  • درک و استفاده از کلیدها Understanding and Using Keys

  • تغییر مقادیر در حافظه و ایجاد حس var، نهایی و const Mutating Values in Memory and Making Sense of var, final, and const

  • خلاصه ماژول Module Summary

ساخت برنامه های چند صفحه ای و پیمایش بین صفحه ها (برنامه وعده های غذایی) Building Multi-Screen Apps and Navigating Between Screens (Meals App)

  • معرفی ماژول Module Introduction

  • راه اندازی پروژه Project Setup

  • با استفاده از GridView Using a GridView

  • ویجت ها در مقابل صفحه نمایش Widgets Versus Screens

  • نمایش اقلام دسته بر روی صفحه نمایش Displaying Category Items on a Screen

  • ساختن هر ویجت قابل لمس با Inkwell Making Any Widget Tappable with Inkwell

  • افزودن داده های وعده های غذایی Adding Meals Data

  • بارگیری داده های وعده های غذایی در صفحه نمایش Loading Meals Data into a Screen

  • اضافه کردن پیمایش بین صفحه Adding Cross-Screen Navigation

  • انتقال داده به صفحه هدف Passing Data to the Target Screen

  • معرفی Stack Widget Introducing the Stack Widget

  • بهبود ویجت MealItem Improving the MealItem Widget

  • افزودن پیمایش به صفحه MealDetails Adding Navigation to the MealDetails Screen

  • بهبود صفحه نمایش جزئیات غذا Improving the MealDetails Screen

  • افزودن ناوبری مبتنی بر برگه Adding Tab-Based Navigation

  • انتقال توابع از طریق چندین لایه ویجت (برای مدیریت دولتی) Passing Functions Through Multiple Layers of Widgets (For State Management)

  • مدیریت وضعیت و داده های گسترده برنامه Managing App-Wide State and Data

  • افزودن کشو کناری Adding a Side Drawer

  • بستن کشو به صورت دستی Closing the Drawer Manually

  • افزودن یک مورد فیلتر Adding a Filter Item

  • تعویض صفحه نمایش (به جای فشار دادن) Replacing Screens (Instead of Pushing)

  • افزودن گزینه های فیلتر بیشتر Adding More Filter Options

  • برگرداندن اطلاعات هنگام خروج از صفحه Returning Data When Leaving a Screen

  • خواندن و استفاده از داده های برگشتی Reading and Using Returned Data

  • اعمال فیلترها Applying Filters

  • خلاصه ماژول Module Summary

مدیریت حالت در سطح برنامه (برنامه وعده های غذایی) Managing App-Wide State (Meals App)

  • معرفی ماژول Module Introduction

  • مشکل چیست؟ What's the Problem?

  • نصب راه حل: Riverpod Installing the Solution: Riverpod

  • مدیریت دولتی با ریورپاد چگونه کار می کند How State Management with Riverpod Works

  • ایجاد یک ارائه دهنده Creating a Provider

  • استفاده از یک ارائه دهنده Using a Provider

  • ایجاد یک ارائه دهنده پیچیده تر با StateNotifier Creating a More Complex Provider with StateNotifier

  • با استفاده از Favorites Provider Using the FavoritesProvider

  • راه اندازی روش Notifier Triggering a Notifier Method

  • شروع کار با ارائه دهنده دیگری Getting Started with Another Provider

  • ترکیب ایالت محلی و مدیریت ارائه دهنده Combining Local and Provider-Managed State

  • برون سپاری دولت به ارائه دهنده Outsourcing State into the Provider

  • اتصال چندین ارائه دهنده به یکدیگر (ارائه دهندگان وابسته) Connecting Multiple Providers with Each Other (Dependent Providers)

  • تعویض "دکمه مورد علاقه" بر اساس ایالت ارائه دهنده Swapping the "Favorite Button" Based on Provider State

  • خلاصه ماژول Module Summary

افزودن انیمیشن ها (برنامه وعده های غذایی) Adding Animations (Meals App)

  • معرفی ماژول Module Introduction

  • راه اندازی و درک انیمیشن های واضح در مقابل ضمنی Setup and Understanding Explicit Versus Implicit Animations

  • انیمیشن های واضح: اضافه کردن یک کنترل کننده انیمیشن Explicit Animations: Adding an Animation Controller

  • انیمیشن های واضح: پخش انیمیشن با AnimatedBuilder Explicit Animations: Playing the Animation with AnimatedBuilder

  • تنظیم دقیق انیمیشن های واضح Finetuning Explicit Animations

  • شروع کار با انیمیشن های ضمنی Getting Started with Implicit Animations

  • پیکربندی انیمیشن های ضمنی Configuring Implicit Animations

  • اضافه کردن انتقال چند صفحه Adding Multi-Screen Transitions

  • خلاصه ماژول Module Summary

مدیریت ورودی کاربر و کار با فرم ها (برنامه لیست خرید) Handling User Input and Working with Forms (Shopping List App)

  • معرفی ماژول Module Introduction

  • راه اندازی و یک چالش برای شما Setup and a Challenge for You

  • راه حل چالش 1 - ساخت و استفاده از مدل ها Challenge Solution 1 - Building and Using Models

  • راه حل چالش 2 - ایجاد رابط کاربری لیست Challenge Solution 2 - Building the List UI

  • اضافه کردن یک صفحه "مورد جدید". Adding a "New Item" Screen

  • ویجت های Form و TextFormField The Form and TextFormField Widgets

  • دکمه کشویی Form-Aware A Form-Aware Dropdown Button

  • اضافه کردن دکمه به فرم Adding Buttons to a Form

  • اضافه کردن منطق اعتبارسنجی Adding Validation Logic

  • دسترسی به فرم از طریق کلید جهانی Getting Form Access Through a Global Key

  • استخراج مقادیر وارد شده Extracting Entered Values

  • انتقال داده ها بین صفحه نمایش Passing Data Between Screens

  • راه حل چالش نهایی Final Challenge Solution

  • خلاصه ماژول Module Summary

اتصال یک Backend و ارسال درخواست HTTP (برنامه لیست خرید) Connecting a Backend and Sending HTTP Requests (Shopping List App)

  • معرفی ماژول Module Introduction

  • Backend چیست؟ و چرا یکی را می خواهید؟ What's a Backend? And Why Would You Want One?

  • HTTP چیست و چگونه کار می کند؟ What Is HTTP and How Does It Work?

  • راه اندازی یک Backend ساختگی (Firebase) Setting Up a Dummy Backend (Firebase)

  • افزودن بسته HTTP Adding the HTTP Package

  • ارسال یک درخواست POST به Backend Sending a POST Request to the Backend

  • کار با درخواست و انتظار برای پاسخ Working with the Request and Waiting for the Response

  • واکشی و تبدیل داده ها Fetching and Transforming Data

  • اجتناب از درخواست های غیر ضروری Avoiding Unnecessary Requests

  • مدیریت وضعیت بارگیری Managing the Loading State

  • رسیدگی به پاسخ به خطا Error Response Handling

  • ارسال درخواست های DELETE Sending DELETE Requests

  • رسیدگی به پرونده "بدون داده". Handling the "No Data" Case

  • مدیریت بهتر خطا Better Error Handling

  • خلاصه ماژول Module Summary

  • با استفاده از ویجت FutureBuilder Using the FutureBuilder Widget

استفاده از ویژگی های دستگاه بومی (به عنوان مثال، دوربین) (برنامه مکان های مورد علاقه) Using Native Device Features (For Example, Camera) (Favorite Places App)

  • معرفی ماژول Module Introduction

  • راه اندازی و یک چالش برای شما! Setup and a Challenge for You!

  • افزودن یک مدل مکان (راه حل چالش 1/6) Adding a Place Model (Challenge Solution 1/6)

  • افزودن یک صفحه نمایش "مکان ها" (راه حل چالش 2/6) Adding a "Places" Screen (Challenge Solution 2/6)

  • افزودن یک صفحه "افزودن مکان" (راه حل چالش 3/6) Adding an "Add Place" Screen (Challenge Solution 3/6)

  • افزودن "riverpod" و یک ارائه دهنده (راه حل چالش 4/6) Adding "riverpod" and a Provider (Challenge Solution 4/6)

  • افزودن مکان ها با ارائه دهنده و نمایش مکان ها (راه حل چالش 5/6) Adding Places with Provider and Displaying Places (Challenge Solution 5/6)

  • افزودن صفحه نمایش "جزئیات مکان" (راه حل چالش 6/6) Adding a "Place Details" Screen (Challenge Solution 6/6)

  • افزودن یک ورودی "انتخاب تصویر". Adding a "Pick an Image" Input

  • نصب بسته "Image Picker". Installing the "Image Picker" Package

  • استفاده از دوربین دستگاه برای عکس گرفتن Using the Device Camera for Taking Pictures

  • افزودن تصویر انتخاب شده به مدل و فرم "افزودن مکان". Adding the Picked Image to the Model and "Add Place" Form

  • پیش نمایش تصویر انتخاب شده Previewing the Picked Image

  • افزودن بسته "مکان" و شروع با ویجت ورودی "دریافت مکان". Adding the "location" Package and Starting with the "Get Location" Input Widget

  • دریافت مکان فعلی کاربر Getting the User's Current Location

  • با استفاده از Google Maps API -- راه اندازی Using the Google Maps API – Setup

  • استفاده از API Geocoding گوگل Using Google's Geocoding API

  • ذخیره اطلاعات مکان در مدل Storing the Location Data in the Model

  • نمایش عکس فوری نقشه پیش نمایش موقعیت مکانی از طریق Google Displaying a Location Preview Map Snapshot Through Google

  • استفاده از مکان انتخابی در فرم Using the Picked Location in the Form

  • خروجی داده های موقعیت مکانی Outputting the Location Data

  • نصب و پیکربندی بسته Google Maps Installing and Configuring the Google Maps Package

  • اضافه کردن یک صفحه "نقشه". Adding a "Map" Screen

  • نمایش مکان انتخاب شده در نقشه پویا Displaying the Picked Place on a Dynamic Map

  • مدیریت ضربه های نقشه برای انتخاب مکان به صورت دستی Handling Map Taps for Selecting a Location Manually

  • با استفاده از صفحه نقشه در فرم "افزودن مکان". Using the Map Screen in the "Add Place" Form

  • نصب بسته‌ها برای ذخیره‌سازی داده‌های محلی (روی دستگاه). Installing Packages for Local (On-Device) Data Storage

  • ذخیره سازی تصویر انتخاب شده به صورت محلی Storing the Picked Image Locally

  • ذخیره اطلاعات مکان در پایگاه داده SQL (روی دستگاه). Storing Place Data in a (On-Device) SQL Database

  • بارگیری داده ها از پایگاه داده SQL Loading Data from the SQL Database

  • استفاده از FutureBuilder برای بارگذاری داده ها Using a FutureBuilder for Loading Data

  • خلاصه ماژول Module Summary

Push Notifications و بیشتر: ساختن یک برنامه چت با Flutter و Firebase Push Notifications and More: Building a Chat App with Flutter and Firebase

  • معرفی ماژول Module Introduction

  • راه اندازی برنامه و Firebase App and Firebase Setup

  • اضافه کردن یک صفحه تأیید هویت Adding an Authentication Screen

  • اضافه کردن دکمه ها و حالت ها به صفحه تأیید هویت Adding Buttons and Modes to the Authentication Screen

  • اعتبار سنجی ورودی کاربر Validating User Input

  • Firebase CLI و SDK Setup 1/2 Firebase CLI and SDK Setup 1/2

  • Firebase CLI و SDK Setup 2/2 Firebase CLI and SDK Setup 2/2

  • ثبت نام کاربران Signing Users Up

  • ورود کاربران به Logging Users In

  • نمایش صفحه های مختلف بر اساس وضعیت احراز هویت Showing Different Screens Based on the Authentication State

  • اضافه کردن یک صفحه نمایش اسپلش (صفحه بارگیری) Adding a Splash Screen (Loading Screen)

  • افزودن خروج کاربر Adding User Logout

  • آپلود تصویر: راه اندازی و مراحل اولیه Image Upload: Setup and First Steps

  • افزودن ویجت انتخابگر تصویر کاربر Adding a User Image Picker Widget

  • با استفاده از بسته ImagePicker Using the ImagePicker Package

  • مدیریت تصویر انتخاب شده در فرم احراز هویت Managing the Selected Image in the Authentication Form

  • آپلود تصاویر در Firebase Uploading Images to Firebase

  • نمایش اسپینر در حال بارگذاری در حین آپلود Showing a Loading Spinner Whilst Uploading

  • افزودن یک پایگاه داده از راه دور: راه اندازی Firestore Adding a Remote Database: Firestore Setup

  • ارسال اطلاعات به Firestore Sending Data to Firestore

  • ذخیره یک نام کاربری Storing a Username

  • افزودن پیام های چت و ابزارک های ورودی Adding ChatMessages and Input Widgets

  • ارسال و خواندن داده ها به و از Firestore Sending and Reading Data to and from Firestore

  • بارگیری و نمایش پیام های چت به صورت جریانی Loading and Displaying Chat Messages as a Stream

  • شکل دادن به حباب های پیام چت Styling Chat Message Bubbles

  • Push Notifications - راه اندازی و مراحل اول Push Notifications - Setup and First Steps

  • درخواست مجوز و دریافت رمز آدرس Requesting Permissions and Getting an Address Token

  • تست Push Notifications Testing Push Notifications

  • کار با موضوعات اعلان Working with Notification Topics

  • ارسال اعلان‌های فشاری به صورت خودکار از طریق توابع ابری Sending Push Notifications Automatically Through Cloud Functions

  • خلاصه ماژول Module Summary

مراحل بعدی و جمع بندی Next Steps and Roundup

  • خلاصه دوره Course Roundup

نمایش نظرات

یادگیری فلاتر و دارت برای ساخت برنامه های iOS و اندروید - نسخه دوم [ویدئو]
جزییات دوره
29 h 53 m
288
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar